5.2 条件语句

在实际的项目开发中,我们是一定会用到判断的。

比如判断ab两个数字的大小,如果a大于b执行逻辑1;如果a小于b那么执行逻辑2

类似上面的这种操作在我们实际使用时是很常见的。与大多数语言一样,Go语言也是使用ifelseelse if来进行判断。

本节代码存放目录为 lesson14

if else 的使用

我们单纯使用if来实现业务逻辑。如下所示:

a := 1
b := 2

if a > b {
    fmt.Println("a > b")
}

在上面的代码中,我们使用if进行了判断,与大多数语言不同的是,a > b不需要使用括号括起来。

同时需要注意的是:if a > b {,这里的大括号不能换行,否则编译后可能会出现问题,因为Go语言在编译时会进行一些格式优化。

我们可以将ifelse配合使用。如下所示:

if a > b {
    fmt.Println("a > b")
} else {
    fmt.Println("a < b or a == b")
}

但是在函数里面我们一般会这样:

if a > b {
    fmt.Println("a > b")
    return
}
fmt.Println("a < b or a == b")

在上面的代码中,我们在a > b时就直接进行了返回,而不用进行else,这样可以让代码简洁一些。

同时我们还可以配合else if一起使用。代码如下:

if a > b {
    fmt.Println("a > b")
} else if a == b {
    fmt.Println("a == b")
} else {
    fmt.Println("a < b")
}

在上面的代码中,我们增加了else if的使用,在实际的开发过程中,一般我们会将优先满足的条件放在前面。

switch 使用

switch与其他语言基本是一样的,使用结构如下:

switch a {
    case 1:
        fmt.Println("a == 1")
    case 2:
        fmt.Println("a == 2")
    case 3:
        fmt.Println("a == 3")
    default:
        fmt.Println("a value null")
    }

在上面的代码中,我们使用switch进行了条件判断,其中包含了几个基本内容:switch变量值casedefault

其中switch变量值case是必须的,default是非必须的。

从上面的代码可以看出,在Go语言中switch是没有break的。

另外Go语言中switch还具有另外一个比较特殊的东西,叫做:fallthrough。如下代码所示:

switch a {
    case 1:
        fmt.Println("a == 1")
        fallthrough
    case 2:
        fmt.Println("a == 2")
    case 3:
        fmt.Println("a == 3")
    default:
        fmt.Println("a value null")
    }

在上面的代码中,我们在case 1下面增加了fallthrough。结果输出如下:

a == 1
a == 2

从输出我们可以看出,case 2也被执行了,这也正是fallthrough的特性。

也就是:当匹配到case之后,还会强制执行下一个case

在上面的代码中,匹配到了case 1,由于case 1中包含了fallthrough,所以继续执行了case 2,输出了a == 2

小结

条件语句是组成程序的重要组成部分,Go语言的条件语句与其他编程语言基本是一致的。

针对本节总结如下:

  • 可以使用ifelse ifelse进行组合判断

  • if条件后的大括号不能换行,必须跟在一起

  • 在使用条件语句时,我们一般遵循:先满足先处理,先满足先返回的原则

  • 可以使用switch进行值选择判断

  • switch与其他语言使用相同,不同的是不用break

  • 可以使用fallthrough强制跳转到下一个case

results matching ""

    No results matching ""